package com.ruoyi.common.h2;

import java.util.Date;

import com.ruoyi.common.utils.DateUtils;


/*****
 * 实现保持h2与mysql兼容性，实现h2中没有的方法
 * @author tgl
 *
 */
public class Function {

	/****
	 * 替换mysql的find_in_set方法
	 * @param str 需要查找的字符
	 * @param list 逗号分割的字符串
	 * @return
	 * CREATE ALIAS find_in_set FOR 'com.ruoyi.common.h2.Function.find_in_set'
	 */
	public static Integer find_in_set(String str, String list){
		if(null==str||null==list)
			return 0;
		String[] lists = list.split(",");
		for(int i=0;i<lists.length;i++)
			if(str.equals(lists[i]))
				return i+1;
		return 0;
	}
	
	/**
	 * %a	缩写星期名
	%b	缩写月名
	%c	月，数值
	%D	带有英文前缀的月中的天
	%d	月的天，数值(00-31)
	%e	月的天，数值(0-31)
	%f	微秒
	%H	小时 (00-23)
	%h	小时 (01-12)
	%I	小时 (01-12)
	%i	分钟，数值(00-59)
	%j	年的天 (001-366)
	%k	小时 (0-23)
	%l	小时 (1-12)
	%M	月名
	%m	月，数值(00-12)
	%p	AM 或 PM
	%r	时间，12-小时（hh:mm:ss AM 或 PM）
	%S	秒(00-59)
	%s	秒(00-59)
	%T	时间, 24-小时 (hh:mm:ss)
	%U	周 (00-53) 星期日是一周的第一天
	%u	周 (00-53) 星期一是一周的第一天
	%V	周 (01-53) 星期日是一周的第一天，与 %X 使用
	%v	周 (01-53) 星期一是一周的第一天，与 %x 使用
	%W	星期名
	%w	周的天 （0=星期日, 6=星期六）
	%X	年，其中的星期日是周的第一天，4 位，与 %V 使用
	%x	年，其中的星期一是周的第一天，4 位，与 %v 使用
	%Y	年，4 位
	%y	年，2 位
    
CREATE ALIAS date_format FOR 'com.ruoyi.common.h2.Function.date_format'
替代mysql的date_format方法
	 */
	public static String date_format(Date date,String format) {
		if(null==format||"".equals(format)||null==date)
			return null;
		format = format.replaceAll("%y","yy").replaceAll("%Y", "yyyy")
				.replaceAll("%m", "MM").replaceAll("%d", "dd")
				.replaceAll("%k", "HH")
				.replaceAll("%", "mm")
				.replaceAll("%", "ss");
		return DateUtils.parseDateToStr(format,date);
	}
}
